Current software development environments and platforms present a number of technical challenges to the management of such environments and platforms for developers or other end-users. These technical challenges arise from the ever increasing complexity of the system landscapes, where required information may be distributed and scattered across many information sources. These distributed information sources may contain information that is required by an end-user to manage, operate, and understand an enterprise and its development environments and platforms. For example, such distributed information may include the terminology used within an enterprise to represent enterprise concepts, such as, for example, a product.
FIG. 1 is a block diagram showing an example prior art software development environment 100 in which an end-user may be required to deal with a number of different and heterogeneous information sources 104, 106, and 108 that together are accessible via an information repository 110 of a software development platform. Business applications are examples of the information sources 104, 106, and 108. The information repository 110 may be accessed, for example, by the end-user utilizing a computer system 112 that is communicatively coupled to the information repository 110 via a network 114 (e.g., the Internet, a Wide Area Network (WAN) or a Local Area Network (LAN)).
The information stored in information sources 104, 106, 108 may include terminology related to particular concepts. However, the information sources 104, 106, 108 may each use different terms to represent the same concepts. Further, the terminology utilized in information sources 104, 106, 108 may not be maintained by a single entity. For example, one data source may be maintained by one corporate department and another data source may be maintained by another department.
Where terms are used inconsistently by an enterprise, a number of technical challenges are presented to the end-users. To illustrate, a search engine may search information sources 104, 106, 108 using an indexer that links information (e.g., documents) to predefined terms. However, where multiple terms are used for a single concept, there is a risk that the indexer will not link all the terms to the document. Accordingly, to find a document, the user must use the same term used to by the indexer.
To link inconsistent terms to a single concept, it is common to provide a semantic network. For example, such a semantic network may link all the product names assigned to a product to the single concept of the product. Where multiple terms are linked to the same concept, the terms may be considered synonyms, and a search engine may perform a search using the synonyms of a term submitted by the user. However, such an approach relies on an expert to properly link the various terms to the appropriate concept. Where the expert is a human, the semantic network approach then suffers from human error.